The demand for quickly delivering new applications and adaptively managing them has become a business imperative. For example, given the intense competition within the telecommunications sector, mobile telephony service providers have to continually develop compelling applications to attract and retain end users, and quickly bring them to market. However, as the applications run, network configurations and quality-of-service (QoS) offerings and requirements may change, new service providers and business relationships may emerge, and existing ones may be modified or terminated. It is thus a challenge to design robust and responsive systems that address these changes effectively, while continually trying to optimize the operations of a given service provider.
Web services assist the transition of businesses towards being on-demand and responsive, by facilitating seamless business-to-business or enterprise application integration. Within the prior art, a principled web service composition approach has been proposed that drives the process from specification to deployment and execution of a composite workflow. This solution introduces a differentiation between web service types and instances, and uses efficient techniques to create the desired functionality, as well as select components that optimize the non-functional attributes.
However, existing approaches to provide end-to-end service composition environments lack the ability to adapt to changes. Nevertheless, such ability to adapt to change can be a critical requirement within dynamic business environments. A limited, albeit naive, approach is to adapt a solution by statically recomposing the solution from scratch every time a change occurs. However, this is not a feasible solution for multiple reasons. First, a significant amount of intervention from the developer is required. Second, there can be an inability to cope with the rate at which change occurs. Third, the complexity involved in exploring the composition search space can prohibit complete static recomposition.
Therefore, there is a need within the prior art for creating and executing Internet web services that adapts to changes within the operating environment at various stages of composition, deployment, and runtime. In the case of a failure or QoS or other changes, such a system should recover by replacing failed components with available alternatives. For these and other reasons, there is thus a need for the present invention.